import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import router from './router'
import store from './store'
import 'font-awesome/css/font-awesome.min.css'; //引入font-awesome图标库


//设置key和value的请求
import {postKeyValueRequest} from "./utils/api";
//设置json格式的请求
import {postRequest} from "./utils/api";
import {putRequest} from "./utils/api";
import {getRequest} from "./utils/api";
import {deleteRequest} from "./utils/api";
//导入菜单组件
import {initMenu} from "./utils/menus";
//使用插件的方式来进行设置
Vue.prototype.postKeyValueRequest = postKeyValueRequest;
Vue.prototype.postRequest = postRequest;
Vue.prototype.putRequest = putRequest;
Vue.prototype.getRequest = getRequest;
Vue.prototype.deleteRequest = deleteRequest;

//{size:'small'} 设置全局的样式  ElementUI的配置方式
Vue.use(ElementUI,{size:'small'}); //使用 ElementUI
Vue.config.productionTip = false


//路由导航守卫  相当于后端的过滤器  vuex的内容
router.beforeEach((to,from,next)=>{
  //to: 将要去哪里  from: 从哪里来的  next: 下一步，放行
  //如果要去的页面是Login页，直接放行
  if(to.path=='/'){
    next();
  }else{
    //如果有user，说明已经登录了
    if(window.sessionStorage.getItem("user")){
      //如果要去的是其他页面，就调用initMenu初始化菜单   调用menus.js的方法
      initMenu(router,store); //在这个方法里判断是否有菜单数据
      next();
    }else{
      //没有登录就去登录页并记录你刚才要去的路由
      //to.path是你刚要去的路由，但因未登录被拦截了，在登录之后就会直接去到你刚访问的路由
      //http://localhost:8080/#/?redirect=%2Fsys%2Fcfg 没有登录，记录下访问的路径  等登录以后，会跳转到访问的路径上
      next('/?redirect=' + to.path);
    }

  }
})

new Vue({
  router,
  store, //挂载到vue实例上
  render: h => h(App)
}).$mount('#app')
